1. Field of the Invention
The present invention relates, in general, to processes of discovering and managing states of devices in a computer network such as a storage area network (SAN), and, more particularly, to a method, and systems configured to support using such a method, for quickly handling notifications of changes in state of networked devices to improve input/output (I/O) performance of network, such as a SAN.
2. Relevant Background
Storage area networks (SANs) are being deployed in large numbers today to meet demands for data processing and storage. Generally, a SAN is a network of interconnected computers and storage devices, and each SAN includes an interconnection infrastructure that links the computers and storage devices to facilitate communications or input/output operations (or I/Os). The I/O interconnect infrastructure may be built on any of a number of interface or communication technologies including Fibre Channel and employ the Fibre Channel Protocol to control communications and Small Computer System Interface (SCSI) or Internet-based versions of these technologies such as iFCP or iSCSI or a hybrid version of any of these technologies.
The number of devices included in a typical SAN has rapidly grown, and these large numbers of devices have made it generally impossible or at least impractical for a host or other device on a SAN to discover all of the devices on the SAN by polling or other techniques. In response, large scale SANs utilize a name server (e.g., a Storage Name Server (SNS) in Fibre Channel SANs, an Internet Storage Name Server (iSNS) in IP storage networks, or the like) that acts as a central repository of information about what devices are connected in the network. As new devices are added to a network, the devices register themselves with the name server that maintains a persistent table or database with an entry for each device that has announced that it is connected to the network. A “well-known address” is reserved in the network to enable the newly added devices to find the name server in the network. The SAN name server can be located anywhere in the network such as a software component of a server or a component of a Fibre Channel switch. Because every storage device must register with the name server, a host or initiator can simply query the name server to obtain a list of all devices (such as all devices that support FCP or iSCSI or the like). Each device registers a set of attributes such as an entity type (for example, an iFCP device), a unique device identifier or entity ID, and the device's IP address in the network.
In addition to initially discovering devices in a SAN, it is important for nodes, such as initiators and targets, to be aware of changes to the SAN including devices being added or removed from the SAN, resetting of a device, and devices or infrastructure configuration changes. To address this need, services or nodes can register with the name server to receive notifications when changes occur in the SAN. In a SAN, when a change happens, the name server notifies all the nodes that have registered for notification about the change by issuing a state change notification (SCN), and the name server updates its database of active devices. In this manner, the name server is able to proactively report any changes throughout the SAN to interested devices.
The use of state change notifications (SCNs) is effective for updating initiators and other nodes of the status of devices in a SAN, but the processing of SCNs can significantly decrease the efficiency of I/O processing in a SAN. As a result, a number of technologies and techniques have been developed to handle SCNs in SANs. Most of these techniques attempt to clean from the SAN (the host, the initiator, switches, targets, and any other effected devices) all the pending communications or I/Os that are related to the change defined in a SCN before the SAN proceeds with other activities. However, such I/O cleaning can be a time-consuming process and can take up to several seconds to complete, which often produces a noticeable and unacceptable slowing of data flow in the SAN. The problem of reduced SAN efficiency is sometimes exasperated rather than improved when I/O cleaning techniques are employed because a bad device in a SAN fabric can cause a continuing storm of notifications or SCNs, which can result in all or substantially all I/Os being halted in the SAN or portions of the SAN because of one bad device. This problem has led some SAN vendors to configure their SAN switches to try to detect SCN storms caused by one bad device in an attempt to reduce the hampering of SAN communications that can be caused by SCN processing. The storage industry, however, continues to demand a more effective method of handling state change notifications (SCNs) so as to maintain the communication effectiveness of the SAN while allowing nodes to be aware of the status of the network and its devices.
Hence, there remains a need for an improved method for handling state change notifications in storage network, e.g., SANs. Preferably, such a method would be faster than existing methods of cleaning I/O operations from a SAN after a change occurs while continuing to support name servers, e.g., SNS and iSNS, as presently configured including ongoing transmittal of SCNs to provide notice of network changes.